nlmeMinimum 25 rental properties. Minimum 10 Airbnbs. Per month.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 11.19 24.70 42.44 98.78 94.26 3050.81
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 29.82 125.44 240.56 358.67 443.70 4483.07
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 15.00 25.00 66.14 62.00 1782.00
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 25.0 108.0 213.0 321.3 391.0 4235.0
Houses only
## [1] 654
data %>%
select(SA2_MAIN16, STE_NAME16) %>%
distinct() %>%
group_by(STE_NAME16) %>%
summarize(areas = n())## # A tibble: 7 x 2
## STE_NAME16 areas
## <chr> <int>
## 1 New South Wales 216
## 2 Northern Territory 1
## 3 Queensland 130
## 4 South Australia 45
## 5 Tasmania 35
## 6 Victoria 142
## 7 Western Australia 85
ggplot(data, aes(x = date, y = rent_50p_int)) +
geom_line(aes(group = SA2_MAIN16), alpha = .5) +
# geom_smooth(method = "lm", se = FALSE) +
geom_smooth(aes(weight = record_count)) +
theme_minimal() + xlab("") + ylab("Rent") +
facet_wrap(~STE_NAME16)ggplot(data, aes(x = date, y = adr_50p_int)) +
geom_line(aes(group = SA2_MAIN16), alpha = .5) +
# geom_smooth(method = "lm", se = FALSE) +
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("") + ylab("AWR") +
facet_wrap(~STE_NAME16)data %>%
filter(STE_NAME16 != "Northern Territory") %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
geom_point(aes(size = n_listings_int)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE)
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
facet_wrap(~STE_NAME16)data %>%
filter(STE_NAME16 != "Northern Territory") %>%
filter(STE_NAME16 != "Australian Capital Territory") %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
# geom_point(aes(size = n_listings_int, col = STE_NAME16)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE) +
geom_smooth(aes(weight = n_listings_int, col = STE_NAME16)) +
facet_wrap(~time) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
theme(strip.text.x = element_blank()) data %>%
filter(STE_NAME16 != "Northern Territory") %>%
filter(time == 27) %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
geom_point(aes(size = n_listings_int)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE)
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
facet_wrap(~STE_NAME16)# rent linear
data %>%
# filter(SA2_NAME16 %in% c("Sydney - Haymarket - The Rocks", "Margaret River")) %>%
ggplot(aes(x = time, y = rent_50p_int/1000)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = record_count), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = record_count_int,
col = STE_NAME16),
method = "lm", se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() + xlab("") + ylab(("")) +
theme(strip.text.x = element_blank()) # rent smooth
data %>%
# filter(SA2_NAME16 %in% c("Sydney - Haymarket - The Rocks", "Margaret River")) %>%
ggplot(aes(x = time, y = rent_50p_int/1000)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = record_count), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = n_listings_int,
col = STE_NAME16), se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_void() +
theme(strip.text.x = element_blank(),
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank())## adr, linear
ggplot(data, aes(x = time, y = adr_50p_int/1000, group = SA2_NAME16)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = n_listings_int), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
col = STE_NAME16,
weight = n_listings_int),
method = "lm", se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() +
theme(strip.text.x = element_blank()) # adr, smooth
ggplot(data, aes(x = time, y = adr_50p_int/1000, group = SA2_NAME16)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = n_listings_int), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = n_listings_int,
col = STE_NAME16), se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() +
theme(strip.text.x = element_blank(),
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank())m1 <- lme(rent_50p_int ~ time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
data = data, method = "ML")
# summary(m1)
#
# data$m1_fit <- fitted(m1)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted") m2 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
data = data, method = "ML")
# summary(m2)
#
# # anova(m1, m2)
#
# data$m2_fit <- fitted(m2)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m2_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m2, "time"))
#
# plot(ggpredict(m2, terms = "adr_50p_int"))m3 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ time | STE_NAME16/SA2_MAIN16,
data = data, method = "ML")
# summary(m3)
#
# # anova(m2, m3)
#
# data$m3_fit <- fitted(m3)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m3_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m3, "time"))
# # plot(ggpredict(m3, terms = c("time", "STE_NAME16")))
#
# plot(ggpredict(m3, terms = "adr_50p_int"))
# # plot(ggpredict(m3, terms = c("adr_50p_int", "STE_NAME16")))m4 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
correlation = corAR1(),
data = data, method = "ML")
# summary(m4)
#
# # anova(m3, m4)
#
# data$m4_fit <- fitted(m4)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m4, "time"))
#
# plot(ggpredict(m4, terms = "adr_50p_int"))
# fixef(m4)
# ranef(m4)
# plot(ACF(m4), alpha = 0.05)m5 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ time | STE_NAME16/SA2_MAIN16,
correlation = corAR1(form = ~ time | STE_NAME16/SA2_MAIN16),
data = data, method = "ML")
# summary(m5)
#
# # anova(m4, m5)
# # anova(m3, m5)
# # anova(m2, m5)
#
# data$m5_fit <- fitted(m5)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m5, "time"))
#
# plot(ggpredict(m5, terms = "adr_50p_int"))
# fixef(m5)
# ranef(m5)
# plot(ACF(m5), alpha = 0.05)## Random effect variances not available. Returned R2 does not account for random effects.
## Random effect variances not available. Returned R2 does not account for random effects.
## Random effect variances not available. Returned R2 does not account for random effects.
## Model Type AIC BIC RMSE R2_conditional R2_marginal ICC
## 1 m1 lme 157384.1 157423.0 17.55667 NA 0.15500976 NA
## 2 m2 lme 157361.4 157408.1 17.54794 NA 0.17508765 NA
## 3 m3 lme 148107.7 148185.5 12.37598 0.8510986 0.03601346 0.8455358
## 4 m4 lme 134155.2 134209.7 19.78898 NA 0.05358051 NA
## 5 m5 lme 133989.4 134074.9 17.04686 NA NA NA
## BF
## 1 NA
## 2 1728.376
## 3 Inf
## 4 Inf
## 5 Inf
as_tibble(list(
Model = as.character(c(1:5)),
AIC = c(AIC(m1), AIC(m2), AIC(m3), AIC(m4), AIC(m5)))) %>%
ggplot() +
geom_col(aes(y= AIC, x = Model)) +
coord_flip() +
theme_minimal()## Linear mixed-effects model fit by maximum likelihood
## Data: data
## AIC BIC logLik
## 133989.4 134074.9 -66983.68
##
## Random effects:
## Formula: ~time | STE_NAME16
## Structure: General positive-definite, Log-Cholesky parametrization
## StdDev Corr
## (Intercept) 89.8115025 (Intr)
## time 0.9317025 -0.149
##
## Formula: ~time | SA2_MAIN16 %in% STE_NAME16
## Structure: General positive-definite, Log-Cholesky parametrization
## StdDev Corr
## (Intercept) 205.4527220 (Intr)
## time 0.4813875 0.407
## Residual 23.8781596
##
## Correlation Structure: AR(1)
## Formula: ~time | STE_NAME16/SA2_MAIN16
## Parameter estimate(s):
## Phi
## 0.9189422
## Fixed effects: rent_50p_int ~ adr_50p_int + time
## Value Std.Error DF t-value p-value
## (Intercept) 435.4568 37.44660 17002 11.628739 0.0000
## adr_50p_int 0.0024 0.00142 17002 1.711809 0.0870
## time 0.7566 0.37467 17002 2.019344 0.0435
## Correlation:
## (Intr) ad_50_
## adr_50p_int -0.056
## time -0.132 -0.003
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -10.33405353 -0.27431127 -0.02659564 0.24353926 10.05590881
##
## Number of Observations: 17658
## Number of Groups:
## STE_NAME16 SA2_MAIN16 %in% STE_NAME16
## 7 654
# anova(m4, m5)
# anova(m3, m5)
# anova(m2, m5)
# intervals(m5)
# plot_model(m5, type = "est")
plot_model(m5, type = "slope")## [[1]]
##
## [[2]]
##
## [[3]]
data$m5_fit <- fitted(m5)
ggplot(data, aes(x = rent_50p_int)) +
geom_point(aes(y = m5_fit,
size = record_count),
# size = n_listings_int),
alpha = 0.3) +
geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
facet_wrap(~STE_NAME16) +
theme_minimal() + xlab("Rent") + ylab("Predicted")# plot(ggpredict(m5, "time"))
#
# plot(ggpredict(m5, terms = "adr_50p_int"))
p1 <- plot(ggpredict(m5, "time"))
p2 <- plot(ggpredict(m5, terms = "adr_50p_int"))
plot_grid(p1, p2)data %>%
filter(SA2_NAME16 %in%
c("Busselton",
"Margaret River",
"City Beach")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("Rent") + ylab("Fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
filter(SA2_NAME16 %in%
c("Byron Bay",
"Avalon - Palm Beach")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
filter(SA2_NAME16 %in%
c("Broadbeach Waters",
"Stanthorpe Region")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
group_by(SA2_NAME16) %>%
summarise(mean_diff = mean(diff),
STE_NAME16 = first(STE_NAME16),
n_listings_int = min(n_listings_int)) %>%
arrange(mean_diff) %>%
print(n = 50)## # A tibble: 654 x 4
## SA2_NAME16 mean_diff STE_NAME16 n_listings_int
## <chr> <dbl> <chr> <int>
## 1 Flinders -0.0450 Victoria 135
## 2 East Melbourne -0.0403 Victoria 15
## 3 Bathurst Region -0.0349 New South Wales 19
## 4 Trigg - North Beach - Watermans Bay -0.0326 Western Austra~ 23
## 5 Colac Region -0.0275 Victoria 19
## 6 Lenah Valley - Mount Stuart -0.0246 Tasmania 18
## 7 The Coorong -0.0242 South Australia 22
## 8 Floreat -0.0235 Western Austra~ 14
## 9 Hamilton (Qld) -0.0200 Queensland 10
## 10 Belmont - Ascot - Redcliffe -0.0197 Western Austra~ 34
## 11 Mandurah -0.0196 Western Austra~ 45
## 12 Parkwood - Ferndale - Lynwood -0.0193 Western Austra~ 12
## 13 Bentley - Wilson - St James -0.0193 Western Austra~ 18
## 14 Hillarys -0.0190 Western Austra~ 15
## 15 Samford Valley -0.0187 Queensland 17
## 16 Orange Region -0.0187 New South Wales 11
## 17 Beckenham - Kenwick - Langford -0.0183 Western Austra~ 15
## 18 The Vines -0.0182 Western Austra~ 10
## 19 Heathcote -0.0182 Victoria 11
## 20 Falcon - Wannanup -0.0181 Western Austra~ 43
## 21 Nambucca Heads Region -0.0180 New South Wales 27
## 22 Benalla -0.0180 Victoria 17
## 23 Geraldton -0.0177 Western Austra~ 15
## 24 Mandurah - South -0.0174 Western Austra~ 10
## 25 Yorke Peninsula - South -0.0171 South Australia 28
## 26 George Town -0.0169 Tasmania 14
## 27 Victoria Park - Lathlain - Burswood -0.0169 Western Austra~ 52
## 28 Forster-Tuncurry Region -0.0166 New South Wales 292
## 29 Wembley - West Leederville - Glenda~ -0.0163 Western Austra~ 23
## 30 City Beach -0.0161 Western Austra~ 13
## 31 Mandurah - East -0.0157 Western Austra~ 29
## 32 Rockingham -0.0157 Western Austra~ 23
## 33 Ellenbrook -0.0155 Western Austra~ 13
## 34 Bayswater - Embleton - Bedford -0.0151 Western Austra~ 19
## 35 Coolangatta -0.0149 Queensland 15
## 36 Safety Bay - Shoalwater -0.0145 Western Austra~ 25
## 37 Irwin -0.0144 Western Austra~ 13
## 38 Mount Nelson - Dynnyrne -0.0141 Tasmania 21
## 39 Freshwater - Brookvale -0.0141 New South Wales 171
## 40 Lakes Entrance -0.0140 Victoria 104
## 41 Butler - Merriwa - Ridgewood -0.0139 Western Austra~ 11
## 42 Ballarat - South -0.0138 Victoria 23
## 43 Tuart Hill - Joondanna -0.0138 Western Austra~ 12
## 44 Queanbeyan Region -0.0137 New South Wales 11
## 45 Booragoon -0.0136 Western Austra~ 30
## 46 East Victoria Park - Carlisle -0.0136 Western Austra~ 37
## 47 Mount Hawthorn - Leederville -0.0135 Western Austra~ 20
## 48 Maylands -0.0134 Western Austra~ 17
## 49 Beechworth -0.0134 Victoria 41
## 50 East Brisbane -0.0134 Queensland 12
## # ... with 604 more rows
data %>%
filter(SA2_NAME16 %in%
c("Trigg - North Beach - Watermans Bay",
"Flinders")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
filter(SA2_NAME16 %in%
c("Coolangatta",
"Hamilton (Qld)")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
group_by(SA2_NAME16) %>%
summarise(mean_diff = mean(diff),
STE_NAME16 = first(STE_NAME16),
n_listings_int = min(n_listings_int)) %>%
arrange(desc(mean_diff)) %>%
print(n = 50)## # A tibble: 654 x 4
## SA2_NAME16 mean_diff STE_NAME16 n_listings_int
## <chr> <dbl> <chr> <int>
## 1 Sydney - Haymarket - The Rocks 0.0431 New South Wales 32
## 2 Dover Heights 0.0363 New South Wales 88
## 3 Toorak 0.0259 Victoria 22
## 4 St Ives 0.0225 New South Wales 12
## 5 Jindabyne - Berridale 0.0219 New South Wales 124
## 6 Hobart 0.0215 Tasmania 103
## 7 Randwick - North 0.0213 New South Wales 61
## 8 Kuranda 0.0201 Queensland 19
## 9 Cronulla - Kurnell - Bundeena 0.0195 New South Wales 45
## 10 Broulee - Tomakin 0.0192 New South Wales 42
## 11 St Leonards - Naremburn 0.0190 New South Wales 17
## 12 Paradise Point - Hollywell 0.0183 Queensland 18
## 13 North Sydney - Lavender Bay 0.0174 New South Wales 20
## 14 Mascot - Eastlakes 0.0171 New South Wales 13
## 15 Bondi Beach - North Bondi 0.0170 New South Wales 337
## 16 Bondi - Tamarama - Bronte 0.0161 New South Wales 280
## 17 Peregian Beach - Marcus Beach 0.0161 Queensland 87
## 18 Kensington (NSW) 0.0161 New South Wales 22
## 19 Kingsford 0.0158 New South Wales 32
## 20 Lane Cove - Greenwich 0.0158 New South Wales 57
## 21 Dulwich Hill - Lewisham 0.0157 New South Wales 28
## 22 Cremorne - Cammeray 0.0156 New South Wales 54
## 23 Turramurra 0.0153 New South Wales 13
## 24 Robertson - Fitzroy Falls 0.0152 New South Wales 38
## 25 Scottsdale - Bridport 0.0149 Tasmania 42
## 26 Prahran - Windsor 0.0144 Victoria 91
## 27 Bondi Junction - Waverly 0.0143 New South Wales 160
## 28 Paddington - Moore Park 0.0138 New South Wales 259
## 29 Southern Highlands 0.0137 New South Wales 63
## 30 Frenchs Forest - Belrose 0.0136 New South Wales 33
## 31 Corrimal - Tarrawanna - Bellambi 0.0135 New South Wales 14
## 32 Haberfield - Summer Hill 0.0133 New South Wales 19
## 33 Chatswood (East) - Artarmon 0.0131 New South Wales 25
## 34 Mermaid Beach - Broadbeach 0.0131 Queensland 54
## 35 Augusta 0.0130 Western Austral~ 89
## 36 Willoughby - Castle Cove - Northbr~ 0.0129 New South Wales 61
## 37 Mosman Park - Peppermint Grove 0.0128 Western Austral~ 31
## 38 Galston - Laughtondale 0.0128 New South Wales 15
## 39 Brighton (Vic.) 0.0125 Victoria 60
## 40 New Town 0.0122 Tasmania 16
## 41 Box Hill North 0.0119 Victoria 14
## 42 Chatswood (West) - Lane Cove North 0.0118 New South Wales 19
## 43 Neutral Bay - Kirribilli 0.0117 New South Wales 41
## 44 Sussex Inlet - Berrara 0.0117 New South Wales 38
## 45 Petersham - Stanmore 0.0117 New South Wales 81
## 46 Marrickville 0.0115 New South Wales 57
## 47 Yarra - North 0.0115 Victoria 42
## 48 Dromana 0.0111 Victoria 153
## 49 Kiama Hinterland - Gerringong 0.0110 New South Wales 132
## 50 Hope Island 0.0110 Queensland 78
## # ... with 604 more rows
data %>%
filter(SA2_NAME16 %in%
c("Sydney - Haymarket - The Rocks",
"Hobart")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
select(SA2_NAME16, STE_NAME16, date, n_listings_int, diff) %>%
arrange(diff) %>%
print(n = 50)## # A tibble: 17,658 x 5
## SA2_NAME16 STE_NAME16 date n_listings_int diff
## <chr> <chr> <date> <int> <dbl>
## 1 Sydney - Haymarket - The Ro~ New South Wal~ 2019-01-01 209 -0.268
## 2 Sydney - Haymarket - The Ro~ New South Wal~ 2019-02-01 209 -0.179
## 3 Flinders Victoria 2017-02-01 145 -0.179
## 4 Sydney - Haymarket - The Ro~ New South Wal~ 2018-12-01 211 -0.178
## 5 East Melbourne Victoria 2018-01-01 18 -0.150
## 6 East Melbourne Victoria 2017-12-01 18 -0.148
## 7 West Coast (Tas.) Tasmania 2018-12-01 69 -0.147
## 8 East Melbourne Victoria 2017-11-01 19 -0.144
## 9 East Melbourne Victoria 2017-10-01 19 -0.141
## 10 East Melbourne Victoria 2017-09-01 18 -0.139
## 11 Flinders Victoria 2017-06-01 193 -0.139
## 12 West Coast (Tas.) Tasmania 2018-11-01 69 -0.136
## 13 East Melbourne Victoria 2017-08-01 18 -0.136
## 14 Flinders Victoria 2018-07-01 246 -0.135
## 15 Coolangatta Queensland 2017-10-01 28 -0.134
## 16 Double Bay - Bellevue Hill New South Wal~ 2017-03-01 117 -0.134
## 17 West Coast (Tas.) Tasmania 2019-02-01 69 -0.131
## 18 Coolangatta Queensland 2017-09-01 26 -0.131
## 19 Coolangatta Queensland 2017-02-01 15 -0.130
## 20 Bathurst Region New South Wal~ 2017-08-01 29 -0.125
## 21 Hunters Hill - Woolwich New South Wal~ 2016-12-01 27 -0.124
## 22 Coolangatta Queensland 2016-12-01 15 -0.123
## 23 Coolangatta Queensland 2017-06-01 25 -0.120
## 24 Coolangatta Queensland 2017-05-01 25 -0.116
## 25 Jindabyne - Berridale New South Wal~ 2017-01-01 127 -0.116
## 26 Sydney - Haymarket - The Ro~ New South Wal~ 2018-11-01 204 -0.115
## 27 Bathurst Region New South Wal~ 2018-03-01 34 -0.114
## 28 Bathurst Region New South Wal~ 2017-10-01 35 -0.113
## 29 Jindabyne - Berridale New South Wal~ 2016-12-01 124 -0.113
## 30 Broulee - Tomakin New South Wal~ 2017-01-01 47 -0.112
## 31 Trigg - North Beach - Water~ Western Austr~ 2017-09-01 32 -0.112
## 32 Trigg - North Beach - Water~ Western Austr~ 2017-10-01 32 -0.111
## 33 Bathurst Region New South Wal~ 2018-02-01 34 -0.110
## 34 Coolangatta Queensland 2017-03-01 20 -0.110
## 35 Bathurst Region New South Wal~ 2017-09-01 32 -0.109
## 36 Broulee - Tomakin New South Wal~ 2016-12-01 42 -0.108
## 37 Mosman Park - Peppermint Gr~ Western Austr~ 2018-12-01 34 -0.107
## 38 Grant South Austral~ 2017-05-01 22 -0.106
## 39 Bathurst Region New South Wal~ 2018-01-01 35 -0.106
## 40 Mosman Park - Peppermint Gr~ Western Austr~ 2019-01-01 35 -0.106
## 41 Queanbeyan Region New South Wal~ 2017-09-01 18 -0.105
## 42 City Beach Western Austr~ 2017-10-01 17 -0.103
## 43 Bathurst Region New South Wal~ 2017-07-01 26 -0.102
## 44 Queanbeyan Region New South Wal~ 2017-08-01 18 -0.102
## 45 Ulladulla Region New South Wal~ 2017-05-01 154 -0.101
## 46 Dover Heights New South Wal~ 2019-02-01 88 -0.101
## 47 Bathurst Region New South Wal~ 2018-04-01 36 -0.0990
## 48 Queanbeyan Region New South Wal~ 2017-07-01 17 -0.0988
## 49 Flinders Victoria 2018-08-01 246 -0.0986
## 50 Bathurst Region New South Wal~ 2017-11-01 35 -0.0985
## # ... with 1.761e+04 more rows
data %>%
filter(SA2_NAME16 %in%
c("Sydney - Haymarket - The Rocks",
"East Melbourne")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
select(SA2_NAME16, STE_NAME16, date, n_listings_int, diff) %>%
arrange(desc(diff)) %>%
print(n = 30)## # A tibble: 17,658 x 5
## SA2_NAME16 STE_NAME16 date n_listings_int diff
## <chr> <chr> <date> <int> <dbl>
## 1 Broulee - Tomakin New South Wal~ 2018-03-01 73 0.159
## 2 Broulee - Tomakin New South Wal~ 2018-01-01 67 0.141
## 3 Kensington (NSW) New South Wal~ 2017-12-01 32 0.138
## 4 Jindabyne - Berridale New South Wal~ 2018-02-01 285 0.124
## 5 Jindabyne - Berridale New South Wal~ 2018-03-01 300 0.121
## 6 West Coast (Tas.) Tasmania 2016-12-01 25 0.114
## 7 Broulee - Tomakin New South Wal~ 2018-02-01 66 0.113
## 8 Sydney - Haymarket - The Rocks New South Wal~ 2017-03-01 37 0.112
## 9 Sydney - Haymarket - The Rocks New South Wal~ 2017-04-01 38 0.112
## 10 Hobart Tasmania 2018-04-01 200 0.109
## 11 Broulee - Tomakin New South Wal~ 2018-04-01 74 0.108
## 12 Rose Bay - Vaucluse - Watsons~ New South Wal~ 2018-02-01 100 0.108
## 13 Sydney - Haymarket - The Rocks New South Wal~ 2017-12-01 56 0.108
## 14 Sydney - Haymarket - The Rocks New South Wal~ 2018-01-01 60 0.107
## 15 Ulladulla Region New South Wal~ 2018-11-01 290 0.107
## 16 Rose Bay - Vaucluse - Watsons~ New South Wal~ 2018-01-01 102 0.107
## 17 Sydney - Haymarket - The Rocks New South Wal~ 2018-03-01 96 0.107
## 18 Sydney - Haymarket - The Rocks New South Wal~ 2018-04-01 170 0.106
## 19 Bathurst Region New South Wal~ 2018-08-01 40 0.106
## 20 Sydney - Haymarket - The Rocks New South Wal~ 2018-05-01 173 0.106
## 21 Sydney - Haymarket - The Rocks New South Wal~ 2017-02-01 32 0.106
## 22 Grindelwald - Lanena Tasmania 2017-11-01 42 0.106
## 23 Jindabyne - Berridale New South Wal~ 2017-02-01 127 0.105
## 24 Sydney - Haymarket - The Rocks New South Wal~ 2018-07-01 187 0.105
## 25 Sydney - Haymarket - The Rocks New South Wal~ 2018-08-01 189 0.105
## 26 Coolangatta Queensland 2019-01-01 53 0.105
## 27 Sydney - Haymarket - The Rocks New South Wal~ 2018-09-01 199 0.104
## 28 Ulladulla Region New South Wal~ 2018-10-01 275 0.104
## 29 West Coast (Tas.) Tasmania 2017-01-01 27 0.103
## 30 Galston - Laughtondale New South Wal~ 2017-10-01 19 0.103
## # ... with 1.763e+04 more rows
data %>%
filter(SA2_NAME16 %in%
c("Broulee - Tomakin",
"Rose Bay - Vaucluse - Watsons Bay")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")